home *** CD-ROM | disk | FTP | other *** search
/ Macworld Expo - Develope…Central & Net Innovations / Developer Central and Net Innovators (MacWorld Expo) (January 1999).iso / Developer Central / Bowers Development / Demo AppMaker / Examples / Pascal OS8 / Temperature / DDocData.p < prev    next >
Encoding:
Text File  |  1998-10-30  |  1.5 KB  |  101 lines  |  [TEXT/CWIE]

  1. { DDocData.p -- data container class for Temperature}
  2.  
  3. Unit DDocData;
  4. Interface
  5.  
  6. Uses
  7.     Types,
  8.     OSUtils,
  9.  
  10.  
  11.     AMSignaler;
  12.  
  13. const
  14.     idCentigrade        = longint ('Cene');
  15.     idFahrenheit        = longint ('Faht');
  16.  
  17. type
  18.     {----------}
  19.     DDocData    = object (AMSignaler)
  20.  
  21.     {data members}
  22.         mCentigrade:        SInt16;
  23.         mFahrenheit:        SInt16;
  24.  
  25.     {methods}
  26.         Procedure Initialize; Override;
  27.  
  28.         Function  GetCentigrade: SInt16;
  29.         Procedure SetCentigrade    (inValue:        SInt16);
  30.         Function  GetFahrenheit: SInt16;
  31.         Procedure SetFahrenheit    (inValue:        SInt16);
  32.     end;
  33.  
  34. {----------}
  35. Function NewDDocData: DDocData;
  36.  
  37. {----------}
  38. Implementation
  39.  
  40. {----------}
  41. Function NewDDocData: DDocData;
  42. var
  43.     data:        DDocData;
  44. begin
  45.     data := nil;
  46.     New (data);
  47.     if data <> nil then begin
  48.         data.Initialize;
  49.     end;
  50.     NewDDocData := data;
  51. end;
  52.  
  53. {----------}
  54. Procedure DDocData.Initialize;
  55. begin
  56.     inherited Initialize;
  57.  
  58.     mCentigrade := 10;
  59.     mFahrenheit := 50;
  60. end;
  61.  
  62. {----------}
  63. Function DDocData.GetCentigrade: SInt16;
  64. begin
  65.     GetCentigrade := mCentigrade;
  66.  
  67.  
  68. end;
  69.  
  70. Procedure DDocData.SetCentigrade (
  71.     inValue:        SInt16);
  72. begin
  73.     mCentigrade := inValue;
  74.  
  75.     mFahrenheit := ((18 * mCentigrade) + 5) div 10 + 32;
  76.     SignalDataChanged (idFahrenheit);
  77.  
  78.     SignalDataChanged (idCentigrade);
  79. end;
  80.  
  81. {----------}
  82. Function DDocData.GetFahrenheit: SInt16;
  83. begin
  84.     GetFahrenheit := mFahrenheit;
  85.  
  86.  
  87. end;
  88.  
  89. Procedure DDocData.SetFahrenheit (
  90.     inValue:        SInt16);
  91. begin
  92.     mFahrenheit := inValue;
  93.  
  94.     mCentigrade := ((10 * (mFahrenheit - 32)) + 9) div 18;
  95.     SignalDataChanged (idCentigrade);
  96.  
  97.     SignalDataChanged (idFahrenheit);
  98. end;
  99.  
  100. end.
  101.